# 作业：
# 整理字符串、列表、字典、元组、集合可变和不可变的数据结构，背
#
# 1、定义两个字典，键值任意，把两个字典合并在一起，组成一个新字典
"""
dict1 = {"姓名":"小刘"}
dict2 = {"年龄":19}
dict1.update(dict2)
print(dict1)
"""

# 2、定义两个列表，将两个列表合并
"""
l1 = [1,2,3]
l2 = [4,5,6]
l1.extend(l2)
print(l1)
"""
# 3、定义一个集合，包含2，3，4，5，7元素，判断元素12在不在集合中，用分支语句打印不同结果； 判断元素3在不在集合中，打印结果
"""
set1 = {2,3,4,5,7}
if 12 not in set1:
    print("12不在集合里")
else:
    print("12在集合里")
if 3 not in set1:
    print("3不在集合里")
else:
    print("3在集合里")
"""
# 4、让用户输入账号密码，去除账号密码前后无用的空格，然后判断账号是不是admin，密码是不是123456，如果都相同显示登录成功，否则显示登录失败
"""
user = input("请输入账号").strip()
pwd = input("请输入密码").strip()
if user == "admin" and pwd =='123456':
    print("登录成功！")
else:
    print("账号不存在或者密码错误，登录失败！")
"""
# 5、实现用户输入用户名和密码,当用户名为 seven 或 alex 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
"""
for i in range(3):
    user = input("请输入账号").strip()
    pwd = input("请输入密码").strip()
    if (user == "seven" or user == "alex") and pwd =='123':
        print("登录成功！")
        break
    else:
        print("账号不存在或者密码错误，登录失败！")
"""
# 6、用程序计算100以内有多少个3的整数倍数字
"""
count = 0
for i in range(1,101):
    if i%3==0:
        count+=1
        print(i,end=" ")
print()
print(f"一共有3的整倍数字{count}")
"""

# 7、实现判断用户输入的内容中是否有c,要求最多输入三次
"""
for i in range(3):
    r = input("请输入内容")
    if "c" in r:
        print("包含c")
    else:
        print("没有c")
"""
# 8、让用户输入个人基本信息，包括 姓名、电话、住址、年龄，通过字典保存用户的数据信息，当用户输入q的时候，结束输入
# 结束输入后，打印显示全部的用户名，并要求选择一个名称
# 然后打印输出这个用户的全部信息，输出信息的格式：用户 xxx，电话是xxx，地址是xxx，年龄是xxx
"""
dict3 = {}
while True:
    name = input("请输入姓名")
    if "q" in name:
        # print(f"全面的姓名为：{dict3.keys()}")
        print(f"所有的姓名是:{[i for i in dict3.keys()]}")
        names = input("请输入要查询的用户姓名")
        for key,value in dict3.items():
            if key == names:
                print(f"用户名字为：{key},电话是：{dict3[key]['电话']}，住址是：{dict3[key]['住址']}，年龄是：{dict3[key]['年龄']}")
        break
    phone = input("请输入电话")
    if "q" in phone:
        print(f"所有的姓名是:{[i for i in dict3.keys()]}")
        names = input("请输入要查询的用户姓名")
        for key, value in dict3.items():
            if key == names:
                print(f"用户名字为：{key},电话是：{dict3[key]['电话']}，住址是：{dict3[key]['住址']}，年龄是：{dict3[key]['年龄']}")
        break
    address = input("请输入住址")
    if "q" in address:
        print(f"所有的姓名是:{[i for i in dict3.keys()]}")
        names = input("请输入要查询的用户姓名")
        for key, value in dict3.items():
            if key == names:
                print(f"用户名字为：{key},电话是：{dict3[key]['电话']}，住址是：{dict3[key]['住址']}，年龄是：{dict3[key]['年龄']}")
        break
    age = input("请输入年龄")
    if "q" in age:
        print(f"所有的姓名是:{[i for i in dict3.keys()]}")
        names = input("请输入要查询的用户姓名")
        for key, value in dict3.items():
            if key == names:
                print(f"用户名字为：{key},电话是：{dict3[key]['电话']}，住址是：{dict3[key]['住址']}，年龄是：{dict3[key]['年龄']}")
        break
    dict3.update({name:{"电话":phone,"住址":address,"年龄":age}})
"""

# 9、图书管理系统
# 支持选项，选择功能
# 图书管理系统：
# 1.添加图书
# 2.删除图书
# 3.修改图书
# 4.查询图书
# 5.显示所有图书
# 6.退出操作



# 10、预设一个 0~9 之间的整数，让用户猜一猜并输入所猜的数，如果大于预设的数，显示“太大” ；小于预设的数，显示“太小” ，如此循环，直至猜中该数，显示“恭喜！你猜中了！ ”（使用random模块）
"""
import random
ran_num = random.randint(0,9)
while True:
    num = int(input("请输入你要猜的数"))
    if num == ran_num:
        print("猜对了")
        break
    elif num < ran_num:
        print("太小")
    elif num > ran_num:
        print("太大")

"""

# 11、用户分别从键盘输入4个整数和3个整数组成两个列表list1和list2，将列表list2合并到list1中，并在list1末尾再添加两个数字90和100，然后对list1降序排列，最后输出最终的列表list1
"""
list1 = []
for i in range(4):
    num = int(input("请输入整数"))
    list1.append(num)
list2 = []
for i in range(3):
    num = int(input("请输入整数"))
    list2.append(num)
list1.extend(list2)
list1.append(90)
list1.append(100)
list1.sort(reverse=True)
print(list1)
"""

# 12、最后一个单词的长度
# 给你一个字符串 s，由若干单词组成，单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。
# 单词 是指仅由字母组成、不包含任何空格字符的最大子字符串
"""
s = "apple test laice"
print(len(s.split(" ")[-1]))
"""
# 13、编写一个程序，要求用户输入一个字符串，并将其反转输出。
"""
r = input("请输入字符串")
print(r[::-1])
"""
# 14、编写一个程序，要求用户输入一个整数，判断它是奇数还是偶数，并输出结果
"""
num = input("请输入数")
if int(num)%2==0:
    print("偶数")
else:
    print("奇数")
"""
# 15、编写一个程序，计算并输出 1 到 100 之间所有能被 7 整除但不能被 5 整除的数的和
"""
sum1 = 0
for i in range(1,101):
    if i%7==0 and i%5!=0:
        sum1+=i
print(f"1 到 100 之间所有能被 7 整除但不能被 5 整除的数的和：{sum1}")
"""

# 16、输入任意三个数，用if语句编写求出其中最小值的程序
"""
a = int(input("输入第一个数"))
b = int(input("输入第二个数"))
c = int(input("输入第三个数"))
max = a
if max < b:
    max = b
if max < c:
    max = c
print(f"最大数是：{max}")
"""

# 17、两数之和
# 给定一个整数数组 nums和一个整数目标值 target，请你在该数组中找出 和为目标值 target 的那两个整数，并返回它们的数组下标。
# 你可以假设每种输入只会对应一个答案。但是，数组中同一个元素在答案里不能重复出现。
# 你可以按任意顺序返回答案。
"""
nums = [5,3,10,8]
target = 8
for i in range(len(nums)):
    for j in range(i):
        if nums[i] + nums[j] == target:
            print(f"分别是：{i},{j}")
"""

# 18、listinfo = [133, 88, 24, 33, 232, 44, 11, 44]，取出列表小于100，且为偶数的数
listinfo = [133, 88, 24, 33, 232, 44, 11, 44]
result = []
for i in listinfo:
    if i < 100 and i%2==0:
        result.append(i)
print(result)


# 19、从键盘上输入任意一个整数，输出这个整数是几位数
r1 = input("请输入整数")
print(len(r1))
# 20、定义一个字典包含“name”、“age”两个key，对应的值为“韩梅梅”, 33，
#  将“name”对应的value值改为“韩涛”
# 添加新的键“sex”，值为“男”
#  将“age”键值对删除
names = {"name":"韩梅梅","age":33}
names['name'] = "韩涛"
names['sex'] = "男"
del names['age']
print(names)


# 21、编写程序，定义一个列表，通过索引打印出列表中第2个值，删除列表中的第3值
# 1. 通过索引打印出列表中第2个值
# 2. 删除列表中的第3值

list1 = [14,5,828,9,8,7,4,8,1,456156]
print(list1[1])
del list1[2]
print(list1)

